home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / cher2k.z / cher2k
Encoding:
Text File  |  2002-10-03  |  18.8 KB  |  397 lines

  1.  
  2.  
  3.  
  4. CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))                                                          CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CCCCHHHHEEEERRRR2222KKKK, ZZZZHHHHEEEERRRR2222KKKK - Performs Hermitian rank 2_k update of a complex Hermitian
  10.      matrix
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      Single precision complex
  14.  
  15.           Fortran:
  16.                CCCCAAAALLLLLLLL CCCCHHHHEEEERRRR2222KKKK ((((_u_p_l_o,,,, _t_r_a_n_s,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b,,,, _l_d_b,,,, _b_e_t_a,,,, _c,,,,
  17.                _l_d_c))))
  18.  
  19.           C/C++:
  20.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  21.                vvvvooooiiiidddd cccchhhheeeerrrr2222kkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n,,,, iiiinnnntttt _k,,,,
  22.                ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a_l_p_h_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_b,,,,
  23.                iiiinnnntttt _l_d_b,,,, ffffllllooooaaaatttt *_b_e_t_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_c,,,, iiiinnnntttt _l_d_c))));;;;
  24.  
  25.           C++ STL:
  26.                ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  27.                vvvvooooiiiidddd cccchhhheeeerrrr2222kkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n,,,, iiiinnnntttt _k,,,,
  28.                ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a_l_p_h_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>>
  29.                *_b,,,, iiiinnnntttt _l_d_b,,,, ffffllllooooaaaatttt *_b_e_t_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_c,,,, iiiinnnntttt _l_d_c))));;;;
  30.  
  31.      Double precision complex
  32.  
  33.           Fortran:
  34.                CCCCAAAALLLLLLLL ZZZZHHHHEEEERRRR2222KKKK ((((_u_p_l_o,,,, _t_r_a_n_s,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b,,,, _l_d_b,,,, _b_e_t_a,,,, _c,,,,
  35.                _l_d_c))))
  36.  
  37.           C/C++:
  38.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  39.                vvvvooooiiiidddd zzzzhhhheeeerrrr2222kkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n,,,, iiiinnnntttt _k,,,,
  40.                ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a_l_p_h_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_b,,,,
  41.                iiiinnnntttt _l_d_b,,,, ddddoooouuuubbbblllleeee *_b_e_t_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_c,,,, iiiinnnntttt _l_d_c))));;;;
  42.  
  43.           C++ STL:
  44.                ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  45.                vvvvooooiiiidddd zzzzhhhheeeerrrr2222kkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n,,,, iiiinnnntttt _k,,,,
  46.                ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a_l_p_h_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a,,,, iiiinnnntttt _l_d_a,,,,
  47.                ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_b,,,, iiiinnnntttt _l_d_b,,,, ddddoooouuuubbbblllleeee *_b_e_t_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_c,,,,
  48.                iiiinnnntttt _l_d_c))));;;;
  49.  
  50. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  51.      These routines are part of the SCSL Scientific Library and can be loaded
  52.      using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option.  The ----llllssssccccssss____mmmmpppp option
  53.      directs the linker to use the multi-processor version of the library.
  54.  
  55.      When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is
  56.      4 bytes (32 bits). Another version of SCSL is available in which integers
  57.      are 8 bytes (64 bits).  This version allows the user access to larger
  58.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  59.      by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))                                                          CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      only one of the two versions; 4-byte integer and 8-byte integer library
  75.      calls cannot be mixed.
  76.  
  77.      The C and C++ prototypes shown above are appropriate for the 4-byte
  78.      integer version of SCSL. When using the 8-byte integer version, the
  79.      variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header
  80.      file should be included.
  81.  
  82. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  83.      These routines perform a Hermitian rank 2_k update of a complex Hermitian
  84.      matrix.  They perform one of the following Hermitian rank 2_k operations:
  85.  
  86.           _C <- _a_l_p_h_a _A_B_H + conj(_a_l_p_h_a) _B_A_H + _b_e_t_a*_C
  87.  
  88.  
  89.           _C <- _a_l_p_h_a _A_H_B + conj(_a_l_p_h_a) BHA + _b_e_t_a*_C
  90.  
  91.      where the following is true:
  92.  
  93.      *   _A_H and _B_H are the conjugate transposes of _A and _B, respectively;
  94.  
  95.      *   _a_l_p_h_a and _b_e_t_a are scalars;
  96.  
  97.      *   _C is an _n-by-_n Hermitian matrix,
  98.  
  99.      *   _A and _B are _n-by-_k matrices in the first operation listed previously,
  100.          and _k-by-_n matrices in the second.
  101.  
  102.      See the NOTES section of this man page for information about the
  103.      interpretation of the data types described in the following arguments.
  104.  
  105.      These routines have the following arguments:
  106.  
  107.      _u_p_l_o      Character.  (input)
  108.                Specifies whether the upper or lower triangular part of array _c
  109.                is referenced, as follows:
  110.  
  111.                _u_p_l_o = 'U' or 'u': only the upper triangular part of _c is
  112.                referenced.
  113.                _u_p_l_o = 'L' or 'l': only the lower triangular part of _c is
  114.                referenced.
  115.  
  116.                For C/C++, a pointer to this character is passed.
  117.  
  118.      _t_r_a_n_s     Character.  (input)
  119.                Specifies the operation to be performed, as follows:
  120.  
  121.                _t_r_a_n_s = 'N' or 'n':  _C <- _a_l_p_h_a _A_B_H + conj(_a_l_p_h_a) _B_A_H + _b_e_t_a*_C
  122.  
  123.                _t_r_a_n_s = 'C' or 'c':  _C <- _a_l_p_h_a _A_HB + conj(_a_l_p_h_a) _B_HA + _b_e_t_a*_C
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))                                                          CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      _n         Integer.  (input)
  141.                Specifies the order of matrix _C.  _n must be >= 0.
  142.  
  143.      _k         Integer.  (input)
  144.  
  145.                On entry with _t_r_a_n_s = 'N' or 'n', _k specifies the number of
  146.                columns of matrices _A and _B.
  147.  
  148.                On entry with _t_r_a_n_s = 'C' or 'c', _k specifies the number of
  149.                rows of matrices _A and _B.
  150.  
  151.                _k must be >= 0.
  152.  
  153.      _a_l_p_h_a     First scalar factor.  (input)
  154.                CCCCHHHHEEEERRRR2222KKKK: Single precision complex.
  155.                ZZZZHHHHEEEERRRR2222KKKK: Double precision complex.
  156.  
  157.                For C/C++, a pointer to this scalar is passed.
  158.  
  159.      _a         Array of dimension (_l_d_a,_k_a).  (input)
  160.                CCCCHHHHEEEERRRR2222KKKK: Single precision complex array.
  161.                ZZZZHHHHEEEERRRR2222KKKK: Double precision complex array.
  162.                When _t_r_a_n_s = 'N' or 'n', _k_a is _k; otherwise, it is _n.  Contains
  163.                matrix _A.
  164.  
  165.                Before entry with _t_r_a_n_s = 'N' or 'n', the leading _n-by-_k part
  166.                of array _a must contain matrix _A; otherwise, the leading _k-by-_n
  167.                part of array _a must contain matrix _A.
  168.  
  169.      _l_d_a       Integer.  (input)
  170.                Specifies the first dimension of _a as declared in the calling
  171.                program.
  172.  
  173.                If _t_r_a_n_s = 'N' or 'n', _l_d_a >= MMMMAAAAXXXX(1,_n); otherwise, _l_d_a >=
  174.                MMMMAAAAXXXX(1,_k).
  175.  
  176.      _b         Array of dimension (_l_d_b,_k_b).  (input)
  177.                CCCCHHHHEEEERRRR2222KKKK: Single precision complex array.
  178.                ZZZZHHHHEEEERRRR2222KKKK: Double precision complex array.
  179.                When _t_r_a_n_s = 'N' or 'n', _k_b is _k; otherwise, it is _n.  Contains
  180.                matrix _B.
  181.  
  182.                Before entry with _t_r_a_n_s = 'N' or 'n', the leading _n-by-_k part
  183.                of array _b must contain matrix _B; otherwise, the leading _k-by-_n
  184.                part of array _b must contain matrix _B.
  185.  
  186.      _l_d_b       Integer.  (input)
  187.                Specifies the first dimension of _b as declared in the calling
  188.                program.  If _t_r_a_n_s = 'N' or 'n', _l_d_b >= MMMMAAAAXXXX(1,_n); otherwise,
  189.                _l_d_b >= MMMMAAAAXXXX(1,_k).
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))                                                          CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))
  203.  
  204.  
  205.  
  206.      _b_e_t_a      First scalar factor.  (input)
  207.                CCCCHHHHEEEERRRR2222KKKK: Single precision.
  208.                ZZZZHHHHEEEERRRR2222KKKK: Double precision.
  209.  
  210.      _c         Array of dimension (_l_d_c,_n).  (input)
  211.                CCCCHHHHEEEERRRR2222KKKK: Single precision complex array.
  212.                ZZZZHHHHEEEERRRR2222KKKK: Double precision complex array.
  213.                Contains matrix _C.
  214.  
  215.                Before entry with _u_p_l_o = 'U' or 'u', the leading _n-by-_n upper
  216.                triangular part of array _c must contain the upper triangular
  217.                part of the Hermitian matrix.  The strictly lower triangular
  218.                part of _c is not referenced.  On exit, the upper triangular
  219.                part of the updated matrix overwrites the upper triangular part
  220.                of array _c.
  221.  
  222.                Before entry with _u_p_l_o = 'L' or 'l', the leading _n-by-_n lower
  223.                triangular part of array _c must contain the lower triangular
  224.                part of the Hermitian matrix.  The strictly upper triangular
  225.                part of _c is not referenced.  On exit, the lower triangular
  226.                part of the updated matrix overwrites the lower triangular part
  227.                of array _c.
  228.  
  229.                The imaginary parts of the diagonal elements need not be set
  230.                and are assumed to be 0.  On exit, they are set to 0.
  231.  
  232.      _l_d_c       Integer.  (input)
  233.                Specifies the first dimension of _c as declared in the calling
  234.                program.  _l_d_c >= MMMMAAAAXXXX(1,_n).
  235.  
  236. NNNNOOOOTTTTEEEESSSS
  237.      CCCCHHHHEEEERRRR2222KKKK/ZZZZHHHHEEEERRRR2222KKKK is a Level 3 Basic Linear Algebra Subprogram (Level 3
  238.      BLAS).
  239.  
  240.  
  241.    DDDDaaaattttaaaa TTTTyyyyppppeeeessss
  242.      The following data types are described in this documentation:
  243.  
  244.           TTTTeeeerrrrmmmm UUUUsssseeeedddd                     DDDDaaaattttaaaa ttttyyyyppppeeee
  245.  
  246.      Fortran:
  247.  
  248.           Array dimensioned _n           xxxx((((nnnn))))
  249.  
  250.           Array of dimensions (_m,_n)     xxxx((((mmmm,,,,nnnn))))
  251.  
  252.           Character                     CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR
  253.  
  254.           Integer                       IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))                                                          CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))
  269.  
  270.  
  271.  
  272.           Single precision              RRRREEEEAAAALLLL
  273.  
  274.           Double precision              DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN
  275.  
  276.           Single precision complex      CCCCOOOOMMMMPPPPLLLLEEEEXXXX
  277.  
  278.           Double precision complex      DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX
  279.  
  280.      C/C++:
  281.  
  282.           Array dimensioned _n           xxxx[[[[_n]]]]
  283.  
  284.           Array of dimensions (_m,_n)     xxxx[[[[mmmm****nnnn]]]]
  285.  
  286.           Character                     cccchhhhaaaarrrr
  287.  
  288.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  289.  
  290.           Single precision              ffffllllooooaaaatttt
  291.  
  292.           Double precision              ddddoooouuuubbbblllleeee
  293.  
  294.           Single precision complex      ssssccccssssllll____ccccoooommmmpppplllleeeexxxx
  295.  
  296.           Double precision complex      ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx
  297.  
  298.      C++ STL:
  299.  
  300.           Array dimensioned _n           xxxx[[[[_n]]]]
  301.  
  302.           Array of dimensions (_m,_n)     xxxx[[[[mmmm****nnnn]]]]
  303.  
  304.           Character                     cccchhhhaaaarrrr
  305.  
  306.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  307.  
  308.           Single precision              ffffllllooooaaaatttt
  309.  
  310.           Double precision              ddddoooouuuubbbblllleeee
  311.  
  312.           Single precision complex      ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>>
  313.  
  314.           Double precision complex      ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>>
  315.  
  316.      Note that you can explicitly declare multidimensional C/C++ arrays
  317.      provided that the array dimensions are swapped with respect to the
  318.      Fortran declaration (e.g., xxxx[[[[nnnn]]]][[[[mmmm]]]] in C/C++ versus xxxx((((mmmm,,,,nnnn)))) in Fortran).
  319.      To avoid a compiler type mismatch error in C++ (or a compiler warning
  320.      message in C), however, the array should be cast to a pointer of the
  321.      appropriate type when passed as an argument to a SCSL routine.
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))                                                          CCCCHHHHEEEERRRR2222KKKK((((3333SSSS))))
  335.  
  336.  
  337.  
  338. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  339.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS3333(3S), SSSSSSSSYYYYRRRR2222KKKK(3S)
  340.  
  341.      IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77
  342.      Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic
  343.      Linear Algebra Subprograms Technical Forum.
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                                                         PPPPaaaaggggeeee 6666
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.